<!doctype html>
<html lang="en-us">
  <head>
    <title>虚拟机的网络连接方式 // sin-coder</title>
    <meta charset="utf-8" />
    <meta name="generator" content="Hugo 0.59.1" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="author" content="csuyzz" />
    <meta name="description" content="" />
    <link rel="stylesheet" href="https://sin-coder.github.io/css/main.min.f90f5edd436ec7b74ad05479a05705770306911f721193e7845948fb07fe1335.css" />

    
    <meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="虚拟机的网络连接方式"/>
<meta name="twitter:description" content=" 虚拟机和主机的网络连接方式  最近在使用VirtualBox安装虚拟机组建集群时，总是会遇到各种网络问题，具体包括虚拟机
 之间的访问、虚拟机和主机之间的访问、虚拟机访问外网等，搞得晕头转向的，所以在此总结
一下虚拟机和主机之间的网络连接方式，以便更进一步的画出集群的网络拓扑图
 在VirtualBox的配置界面，可以看到虚拟机和主机间的网络连接方式有以下几种：网络地址
 转换（NAT）、NAT网络、桥接网卡、内部网络、仅主机（Host-only）网络、通用驱动等，下
面便一一详解
1. NAT模式  NAT方式借助网络地址转换的功能，通过宿主机所在的网络来访问互联网。此种方式下，虚拟
 机的网卡和物理网卡的网络不是在同一个网络中。虚拟机的网卡只是VirtualBox所提供的一个
虚拟网络，并不真实存在于网络中，所以宿主机无法ping通虚拟机，虚拟机彼此间也不通，但
是通过NAT虚拟机可以访问主机、和主机同网络的其他主机和互联网
 不过这里的网络连接方式中有网络地址转换（NAT）和NAT网络，这二者之间又有什么区别呢？
 其实这二者本质是相同的，不过后者是提前创建好的网络，在主界面的管理&mdash;&gt;全局设定&ndash;&gt;网络
我们可以提前设置一个NAT网络供虚拟机来选用
 总结起来，NAT模式可以节省网段中的IP地址，适合仅需自己使用的虚拟机配置
 2.桥接模式  桥接方式下，虚拟机需要桥接到宿主机的一块网卡上（有线或者无线均可），虚拟机和宿主机
 处于同一网段，真实存在于网络中。虚拟机之间可以互通、虚拟机和网络中的主机也可以互通、
只要主机能上网，虚拟机也可上网，但是这样占用网络中的IP地址
3.host-only模式  host-only模式应该是最为复杂的网络连接模式了，其他几种网络的连接方式通过这种模式的合
 适配置均可实现。我们可以理解为VirtualBox在主机中模拟出一张专供虚拟机使用的网卡，所
有的虚拟机都是连接到网卡上的，我们可以通过设置这张网卡来实现上网和其他功能。
 虚拟机和主机关系，默认不能相互访问，因为不属于同一个IP地址段。但是通过网卡共享、网卡
 桥接等，可以实现虚拟机和主机的相互访问
 虚拟机和虚拟机的关系，默认同一个网段中的虚拟机是可以相互访问的
 4.内部网络  内部网络模式，虚拟机与外网完全断开，虚拟机和主机之间无法相互访问只用于虚拟机
 与虚拟机之间的访问，但前提是在虚拟机在同一网络中，实际配置时两台虚拟机设置为
同一网络名称即可，如下图的配置中使用intnet
5.通用驱动  运行用于选择网卡驱动，实际上很少用到，可忽略
 6.未指定  相当于虚拟机有网卡，但是没有插线，只能ping自己才会通的
 "/>

    <meta property="og:title" content="虚拟机的网络连接方式" />
<meta property="og:description" content=" 虚拟机和主机的网络连接方式  最近在使用VirtualBox安装虚拟机组建集群时，总是会遇到各种网络问题，具体包括虚拟机
 之间的访问、虚拟机和主机之间的访问、虚拟机访问外网等，搞得晕头转向的，所以在此总结
一下虚拟机和主机之间的网络连接方式，以便更进一步的画出集群的网络拓扑图
 在VirtualBox的配置界面，可以看到虚拟机和主机间的网络连接方式有以下几种：网络地址
 转换（NAT）、NAT网络、桥接网卡、内部网络、仅主机（Host-only）网络、通用驱动等，下
面便一一详解
1. NAT模式  NAT方式借助网络地址转换的功能，通过宿主机所在的网络来访问互联网。此种方式下，虚拟
 机的网卡和物理网卡的网络不是在同一个网络中。虚拟机的网卡只是VirtualBox所提供的一个
虚拟网络，并不真实存在于网络中，所以宿主机无法ping通虚拟机，虚拟机彼此间也不通，但
是通过NAT虚拟机可以访问主机、和主机同网络的其他主机和互联网
 不过这里的网络连接方式中有网络地址转换（NAT）和NAT网络，这二者之间又有什么区别呢？
 其实这二者本质是相同的，不过后者是提前创建好的网络，在主界面的管理&mdash;&gt;全局设定&ndash;&gt;网络
我们可以提前设置一个NAT网络供虚拟机来选用
 总结起来，NAT模式可以节省网段中的IP地址，适合仅需自己使用的虚拟机配置
 2.桥接模式  桥接方式下，虚拟机需要桥接到宿主机的一块网卡上（有线或者无线均可），虚拟机和宿主机
 处于同一网段，真实存在于网络中。虚拟机之间可以互通、虚拟机和网络中的主机也可以互通、
只要主机能上网，虚拟机也可上网，但是这样占用网络中的IP地址
3.host-only模式  host-only模式应该是最为复杂的网络连接模式了，其他几种网络的连接方式通过这种模式的合
 适配置均可实现。我们可以理解为VirtualBox在主机中模拟出一张专供虚拟机使用的网卡，所
有的虚拟机都是连接到网卡上的，我们可以通过设置这张网卡来实现上网和其他功能。
 虚拟机和主机关系，默认不能相互访问，因为不属于同一个IP地址段。但是通过网卡共享、网卡
 桥接等，可以实现虚拟机和主机的相互访问
 虚拟机和虚拟机的关系，默认同一个网段中的虚拟机是可以相互访问的
 4.内部网络  内部网络模式，虚拟机与外网完全断开，虚拟机和主机之间无法相互访问只用于虚拟机
 与虚拟机之间的访问，但前提是在虚拟机在同一网络中，实际配置时两台虚拟机设置为
同一网络名称即可，如下图的配置中使用intnet
5.通用驱动  运行用于选择网卡驱动，实际上很少用到，可忽略
 6.未指定  相当于虚拟机有网卡，但是没有插线，只能ping自己才会通的
 " />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://sin-coder.github.io/post/virtualnetwork/" />
<meta property="article:published_time" content="2020-01-31T12:00:31+08:00" />
<meta property="article:modified_time" content="2020-01-31T12:00:31+08:00" />


  </head>
  <body>
    <header class="app-header">
      <a href="https://sin-coder.github.io"><img class="app-header-avatar" src="/cat.jpg" alt="csuyzz" /></a>
      <h1>sin-coder</h1>
      <p>I always remember that &#39;Talk is cheap,show me the code&#39;</p>
      <div class="app-header-social">
        
          <a target="_blank" href="https://github.com/sin-coder" rel="noreferrer noopener"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
  <title>github</title>
  <path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg></a>
        
      </div>
    </header>
    <main class="app-container">
      
  <article class="post">
    <header class="post-header">
      <h1 class ="post-title">虚拟机的网络连接方式</h1>
      <div class="post-meta">
        <div>
          <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
  <title>calendar</title>
  <rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
          Jan 31, 2020
        </div>
        <div>
          <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-clock">
  <title>clock</title>
  <circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline>
</svg>
          1 min read
        </div><div>
          <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tag">
  <title>tag</title>
  <path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7" y2="7"></line>
</svg>
          <a class="tag" href="https://sin-coder.github.io/tags/%E4%BA%91%E8%AE%A1%E7%AE%97/">云计算</a><a class="tag" href="https://sin-coder.github.io/tags/%E8%99%9A%E6%8B%9F%E5%8C%96/">虚拟化</a></div></div>
    </header>
    <div class="post-content">
      

<h2 id="虚拟机和主机的网络连接方式">虚拟机和主机的网络连接方式</h2>

<blockquote>
<p>最近在使用VirtualBox安装虚拟机组建集群时，总是会遇到各种网络问题，具体包括虚拟机</p>
</blockquote>

<p>之间的访问、虚拟机和主机之间的访问、虚拟机访问外网等，搞得晕头转向的，所以在此总结</p>

<p>一下虚拟机和主机之间的网络连接方式，以便更进一步的画出集群的网络拓扑图</p>

<blockquote>
<p>在VirtualBox的配置界面，可以看到虚拟机和主机间的网络连接方式有以下几种：网络地址</p>
</blockquote>

<p>转换（NAT）、NAT网络、桥接网卡、内部网络、仅主机（Host-only）网络、通用驱动等，下</p>

<p>面便一一详解</p>

<p><img src="https://s2.ax1x.com/2020/01/31/13iBan.png" alt="13iBan.png"  /></p>

<h3 id="1-nat模式">1. NAT模式</h3>

<blockquote>
<p>NAT方式借助网络地址转换的功能，通过宿主机所在的网络来访问互联网。此种方式下，虚拟</p>
</blockquote>

<p>机的网卡和物理网卡的网络不是在同一个网络中。虚拟机的网卡只是VirtualBox所提供的一个</p>

<p>虚拟网络，并不真实存在于网络中，所以宿主机无法ping通虚拟机，虚拟机彼此间也不通，但</p>

<p>是通过NAT虚拟机可以访问主机、和主机同网络的其他主机和互联网</p>

<blockquote>
<p>不过这里的网络连接方式中有网络地址转换（NAT）和NAT网络，这二者之间又有什么区别呢？</p>
</blockquote>

<p>其实这二者本质是相同的，不过后者是提前创建好的网络，在主界面的管理&mdash;&gt;全局设定&ndash;&gt;网络</p>

<p>我们可以提前设置一个NAT网络供虚拟机来选用</p>

<p><img src="https://s2.ax1x.com/2020/01/31/13Acxf.png" alt="13Acxf.png" style="zoom:78%;" /></p>

<blockquote>
<p>总结起来，NAT模式可以节省网段中的IP地址，适合仅需自己使用的虚拟机配置</p>
</blockquote>

<h3 id="2-桥接模式">2.桥接模式</h3>

<blockquote>
<p>桥接方式下，虚拟机需要桥接到宿主机的一块网卡上（有线或者无线均可），虚拟机和宿主机</p>
</blockquote>

<p>处于同一网段，真实存在于网络中。虚拟机之间可以互通、虚拟机和网络中的主机也可以互通、</p>

<p>只要主机能上网，虚拟机也可上网，但是这样占用网络中的IP地址</p>

<h3 id="3-host-only模式">3.host-only模式</h3>

<blockquote>
<p>host-only模式应该是最为复杂的网络连接模式了，其他几种网络的连接方式通过这种模式的合</p>
</blockquote>

<p>适配置均可实现。我们可以理解为VirtualBox在主机中模拟出一张专供虚拟机使用的网卡，所</p>

<p>有的虚拟机都是连接到网卡上的，我们可以通过设置这张网卡来实现上网和其他功能。</p>

<blockquote>
<p>虚拟机和主机关系，默认不能相互访问，因为不属于同一个IP地址段。但是通过网卡共享、网卡</p>
</blockquote>

<p>桥接等，可以实现虚拟机和主机的相互访问</p>

<blockquote>
<p>虚拟机和虚拟机的关系，默认同一个网段中的虚拟机是可以相互访问的</p>
</blockquote>

<h3 id="4-内部网络">4.内部网络</h3>

<blockquote>
<p>内部网络模式，虚拟机与外网完全断开，虚拟机和主机之间无法相互访问只用于虚拟机</p>
</blockquote>

<p>与虚拟机之间的访问，但前提是在虚拟机在同一网络中，实际配置时两台虚拟机设置为</p>

<p>同一网络名称即可，如下图的配置中使用intnet</p>

<p><img src="https://s2.ax1x.com/2020/01/31/13M9KI.png" alt="13M9KI.png" /></p>

<h3 id="5-通用驱动">5.通用驱动</h3>

<blockquote>
<p>运行用于选择网卡驱动，实际上很少用到，可忽略</p>
</blockquote>

<h3 id="6-未指定">6.未指定</h3>

<blockquote>
<p>相当于虚拟机有网卡，但是没有插线，只能ping自己才会通的</p>
</blockquote>

    </div>
    <div class="post-footer">
      
    </div>
  </article>

    </main>
  </body>
</html>
